Problem s Query a PARADOX databaze

Otázka od: skywalker@stonline.sk

8. 9. 2002 1:48

Zdravim konfero,
potrebuju pomoct s TQuery, protoze nemuzu prijit na to, kde je v nasledujicim
kodu chyba, nebo co mu vlastne vadi.
Opis situace:
Mam databazy ve ktere potrebuju spocitavat hodnoty podle urciteho parametru.
Tenhle kod spadne pri krokovani za
radkem "Data.QPlany.SQL.Add('SELECT SUM(PN) AS pnhod');" s hlaskou:


  Project raised exception class EDBEngineError with message
'Invalid use of keyword.
             Token: SELECT
  Line Number 3'.

Otazka ? Proc, kdyz 10 radku pred tim to sbehlo bez problemu, akorat se tam
nedelal SUM, ale pouze SELECT * FROM.
Query samotne je pouzivano ve stylu "clear-napln-open-zavri". Skuste mi nekdo
poradit, v cem je problem, protoze mne
porad nesvitlo, mozna je v to uplna hloupost, jako v 99% vsech podobnejch
pripadu. Pole PN existuje a je typu NUMBER,
parameter 'id' je naplnen jako String, protoze i pole KARTA je String.


--- text ---
 try
    try
      Data.QPlany.SQL.Clear;
      Data.QPlany.SQL.Add('SELECT SUM(PN) AS pnhod');
      Data.QPlany.SQL.Add('FROM plany.db'); <--- misto
kde to pri krokovani spadne s Exception
      Data.QPlany.SQL.Add('WHERE KARTA=:id');
      Data.QPlany.ParamByName('id').AsString:=id;
      Data.QPlany.Open;
      
      /// dalsi kod
      /// ---
    
    except
      raise Exception.Create('Chyba pri spracovani dat');
    end;
  finally
    Data.QPlany.Close;
  end;
--- text ---


Odpovedá: Jan Sebelík

8. 9. 2002 13:24

> radkem "Data.QPlany.SQL.Add('SELECT SUM(PN) AS pnhod');" s hlaskou:
Padat by to melo ne na tomto radku, ale az pri Open.
Teda mozna je to blbost, ale mas tam nekde ...from...?

Honza
=========================================
= HAES - RNDr. Jan Sebelik
= http://www.haes.cz
= Skolici a konzultacni stredisko pro Delphi a Win32
= Vojtiskova 206
= 507 81 Lazne Belohrad
= tel. 0434 692 569 (0776 347735)
=========================================
----------
> Odesílatel: skywalker@stonline.sk
> Komu: delphi-l@clexpert.cz
> Předmět: Problem s Query a PARADOX databaze
> Datum: 6. září 2002 14:15
>
> Zdravim konfero,
> potrebuju pomoct s TQuery, protoze nemuzu prijit na to, kde je v nasledujicim
kodu chyba, nebo co mu vlastne vadi.
> Opis situace:
> Mam databazy ve ktere potrebuju spocitavat hodnoty podle urciteho parametru.
Tenhle kod spadne pri krokovani za
> radkem "Data.QPlany.SQL.Add('SELECT SUM(PN) AS pnhod');" s hlaskou:
>
>
> Project raised exception class EDBEngineError with message
'Invalid use of keyword.
> Token: SELECT
> Line Number 3'.
>
> Otazka ? Proc, kdyz 10 radku pred tim to sbehlo bez problemu, akorat se tam
nedelal SUM, ale pouze SELECT * FROM.
> Query samotne je pouzivano ve stylu "clear-napln-open-zavri". Skuste mi nekdo
poradit, v cem je problem, protoze mne
> porad nesvitlo, mozna je v to uplna hloupost, jako v 99% vsech podobnejch
pripadu. Pole PN existuje a je typu NUMBER,
> parameter 'id' je naplnen jako String, protoze i pole KARTA je String.
>
>
> --- text ---
> try
> try
> Data.QPlany.SQL.Clear;
> Data.QPlany.SQL.Add('SELECT SUM(PN) AS pnhod');
> Data.QPlany.SQL.Add('FROM plany.db'); <--- misto
kde to pri krokovani spadne s Exception
> Data.QPlany.SQL.Add('WHERE KARTA=:id');
> Data.QPlany.ParamByName('id').AsString:=id;
> Data.QPlany.Open;
>
> /// dalsi kod
> /// ---
>
> except
> raise Exception.Create('Chyba pri spracovani dat');
> end;
> finally
> Data.QPlany.Close;
> end;
> --- text ---
>
>

Odpovedá: Ing. Jiri SOKOL

9. 9. 2002 22:26

Subject: Re: Problem s Query a PARADOX databaze

----------
> Odesílatel: skywalker@stonline.sk
> Komu: delphi-l@clexpert.cz
> Předmět: Problem s Query a PARADOX databaze
> Datum: 6. září 2002 14:15
>
> Zdravim konfero,
> potrebuju pomoct s TQuery, protoze nemuzu prijit na to, kde je v nasledujicim
kodu chyba, nebo co mu vlastne vadi.
> Opis situace:
> Mam databazy ve ktere potrebuju spocitavat hodnoty podle urciteho parametru.
Tenhle kod spadne pri krokovani za
> radkem "Data.QPlany.SQL.Add('SELECT SUM(PN) AS pnhod');" s hlaskou:
>
>
> Project raised exception class EDBEngineError with message
'Invalid use of keyword.
> Token: SELECT
> Line Number 3'.
>
> Otazka ? Proc, kdyz 10 radku pred tim to sbehlo bez problemu, akorat se tam
nedelal SUM, ale pouze SELECT * FROM.
> Query samotne je pouzivano ve stylu "clear-napln-open-zavri". Skuste mi nekdo
poradit, v cem je problem, protoze mne
> porad nesvitlo, mozna je v to uplna hloupost, jako v 99% vsech podobnejch
pripadu. Pole PN existuje a je typu NUMBER,
> parameter 'id' je naplnen jako String, protoze i pole KARTA je String.
>
>
> --- text ---
> try
> try
> Data.QPlany.SQL.Clear;
> Data.QPlany.SQL.Add('SELECT SUM(PN) AS pnhod');
> Data.QPlany.SQL.Add('FROM plany.db'); <--- misto
kde to pri krokovani spadne s Exception
> Data.QPlany.SQL.Add('WHERE KARTA=:id');
> Data.QPlany.ParamByName('id').AsString:=id;
> Data.QPlany.Open;
>
> /// dalsi kod
> /// ---
>
> except
> raise Exception.Create('Chyba pri spracovani dat');
> end;
> finally
> Data.QPlany.Close;
> end;
> --- text ---
>
>

Teda nevim, jestli je to jeste aktualni, ale ...
mel jsem jednou podobne problemy. Vyresil jsem to tak, ze jsem misto
...SQL.add(...) udelal
pomocnou
lokalni promennou, do te jsem si vytvoril cely SQL prikaz a ten jsem ulozil
....SQL.Text:=PomocProm;
Mozna to je jen chyba pri prepisu do mailu, ale mozna to bude ta chybka. Pokud
ctu spravne, mela by
tam byt mezera (coz se Ti projevi hlavne pri tvorbe ty pomocny promenny).
Hodne zdaru.
Jirka

Ing. Jiri Sokol, js-delphi@seznam.cz, +420251431187
D6ProfSP2,WinNT
amatersky programator

______________________________________________________________________
Reklama:
Co davaji v TV? http://tv.seznam.cz